import i18n from '@/i18n'
/**
 * 判断是否为外部资源
 * @param {*} path
 */
export function isExternal (path) {
  const flag = /^(https?:|mailto:|tel:)/.test(path)
  return flag
}

/**
 * 判断是否为电话
 * @param {*} value
 */
function isTel (value) {
  const flag = /^(0|86|17951)?(13[0-9]|15[012356789]|166|17[3678]|18[0-9]|14[57]|19[12356789])[0-9]{8}$/.test(value)
  return flag
}

export const validateTel = () => {
  return (rule, value, callback) => {
    if (!isTel(value)) {
      callback(new Error('联系方式格式不正确'))
    } else {
      callback()
    }
  }
}

/**
 * 判断是否为邮箱
 * @param {*} value
 */
export function isEmail (value) {
  const flag = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/.test(value)
  return flag
}

/**
 * 判断身份证号码
 * @param {*} value
 * @returns
 */
export function isIdentityCard (value) {
  return /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/.test(value)
}

export const validateIdentityCard = () => {
  return (rule, value, callback) => {
    if (!isIdentityCard(value)) {
      callback(new Error('证件号码格式不正确'))
    } else {
      callback()
    }
  }
}
